From a30659c4f3b706a7e134f25ef81fe2b9636faf9e Mon Sep 17 00:00:00 2001 From: 8man <99420590+himanshu8443@users.noreply.github.com> Date: Wed, 14 Jun 2023 22:50:48 +0530 Subject: Added episodes selector dropdown (#23) * Added Episodes Dropdown * Dropdown customisations and corner cases * dropdown style changes --- pages/anime/[...id].js | 63 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 5 deletions(-) (limited to 'pages/anime/[...id].js') diff --git a/pages/anime/[...id].js b/pages/anime/[...id].js index ed97b5c..c878652 100644 --- a/pages/anime/[...id].js +++ b/pages/anime/[...id].js @@ -32,6 +32,23 @@ import { GET_MEDIA_INFO } from "../../queries"; // console.log(GET_MEDIA_USER); export default function Info({ info, color }) { + + // Episodes dropdown + const [firstEpisodeIndex,setFirstEpisodeIndex ] = useState(0); + const [lastEpisodeIndex,setLastEpisodeIndex ] = useState(); + const [selectedRange,setSelectedRange ] = useState("All"); + function onEpisodeIndexChange(e) { + if(e.target.value==="All"){ + setFirstEpisodeIndex(0); + setLastEpisodeIndex(); + setSelectedRange("All"); + return; + } + setFirstEpisodeIndex(e.target.value.split("-")[0]-1); + setLastEpisodeIndex(e.target.value.split("-")[1]); + setSelectedRange(e.target.value); + } + const { data: session } = useSession(); const [episode, setEpisode] = useState(null); const [loading, setLoading] = useState(false); @@ -65,6 +82,14 @@ export default function Info({ info, color }) { setPrvValue(e.target.value); localStorage.setItem("provider", e.target.value); } + + //for episodes dropdown + useEffect(() => { + setFirstEpisodeIndex(0); + setLastEpisodeIndex(); + setSelectedRange("All"); + }, [info,prvValue]); + useEffect(() => { handleClose(); @@ -647,11 +672,13 @@ export default function Info({ info, color }) { visible ? "" : "hidden" }`} > -
+
+
+

Provider

+ { episode?.length>50 && ( +
+

Episodes

+ + +
) + } +
{epiView === "1" - ? episode?.map((epi, index) => { + ? episode.slice(firstEpisodeIndex,lastEpisodeIndex)?.map((epi, index) => { const time = artStorage?.[epi?.id]?.time; const duration = artStorage?.[epi?.id]?.duration; @@ -829,7 +882,7 @@ export default function Info({ info, color }) { }) : ""} {epiView === "2" && - episode?.map((epi, index) => { + episode.slice(firstEpisodeIndex,lastEpisodeIndex).map((epi, index) => { const time = artStorage?.[epi?.id]?.time; const duration = artStorage?.[epi?.id]?.duration; @@ -897,7 +950,7 @@ export default function Info({ info, color }) { ); })} {epiView === "3" && - episode?.map((epi, index) => { + episode.slice(firstEpisodeIndex,lastEpisodeIndex).map((epi, index) => { return (